layui.use(['tree', 'form'], function(){
	var form = layui.form;
	
	initMenuTree();//渲染树结构
	
	initParentSelect();//父节点

	//监听提交
	form.on('submit(myForm)', function(data){
		var json = data.field;
		save(json);
		return false;
	});
	
	form.verify({
		menuName: function(value, item){ //value：表单的值、item：表单的DOM对象
			return checkNotNull(value, '菜单名称');
		}
		,menuCode: function(value, item){ //value：表单的值、item：表单的DOM对象
			return checkNotNull(value, '菜单编号');
		}
		,url: function(value, item){ //value：表单的值、item：表单的DOM对象
			var parentCode = $("#parentCode").val();
			if(parentCode!="0"){
				return checkNotNull(value, '菜单路径');
			}
		}
	});
	
	form.render();//刷新
});

//不能为空
function checkNotNull(value, preTip){
	if(""==$.trim(value)){
		return preTip + '不能空';
	}
}

//获取菜单树
function initMenuTree(){
	$.ajax({
		type: 'get',
		url: '/base/bardmenu/getMenuTree',
		dataType: 'json',
		success: function(result){
			var code = result.code;
			if(code==0){
				var menuTree = result.data;
				loadTree(menuTree);
			}
		}
	});
}

//加载父节点
function initParentSelect(){
	$.ajax({
		type: 'get',
		url: '/base/bardmenu/getParentMenuList',
		dataType: 'json',
		success: function(result){
			var code = result.code;
			if(code==0){
				var parentMenu = result.data;
				var html = '<option value="0">根节点</option>';
				for(var i=0;i<parentMenu.length;i++){
					var map = parentMenu[i];
					var optHtml = '<option value="' + map.menuCode + '">' + map.menuName + '</option>';
					html += optHtml;
				}
				$("#parentCode").html(html);
				layui.form.render();//刷新
			}
		}
	});
}

//初始化树结构
function loadTree(data){
	var tree = [{
		'id': 0,
		'title': '根节点',
		'disabled': true,
		'spread': true,//展开
		'children': data
	}];
	var inst1 = layui.tree.render({
		elem: '#menuTree'  //绑定元素
		,data: tree
		,click: function(obj){
			var data = obj.data;
			var id = data.id;
			var children = data.children;
			if(id!=0){
				$.ajax({
					type: 'get',
					url: '/base/bardmenu/getOneById?id=' + id,
					dataType: 'json',
					success: function(result){
						var code = result.code;
						if(code==0){
							var data = result.data;
							$("#id").val(data.id);
							$("#level").val(data.level);
							$("#seq").val(data.seq);
							$("#parentCode").val(data.parentCode);
							$("#menuCode").val(data.menuCode);
							$("#menuName").val(data.menuName);
							$("#url").val(data.url);
							$("#menuStatus").val(data.menuStatus);
							if(children!=undefined && children.length>0){//有子节点，不能删除
								$("#delBtn").removeClass("layui-btn layui-btn-primary");
								$("#delBtn").addClass("layui-btn layui-btn-disabled");
							}else{
								$("#delBtn").removeClass("layui-btn layui-btn-disabled");
								$("#delBtn").addClass("layui-btn layui-btn-primary");
							}
							layui.form.render();//刷新
						}
					}
				});
			}
		}
	});
}

//新增清空
function add(){
	$("#id").val(0);
	$("#parentCode").val("0");
	$("#menuCode").val("");
	$("#menuName").val("");
	$("#url").val("");
	$("#menuStatus").val(1);
}

//删除
function delMenu(){
	var id = $("#id").val();
	if(id==undefined || id==null || id==""){
		layui.layer.msg('请先选中需要删除的菜单！', {icon: 5});
	}else{
		layer.confirm('确定要删除?', {icon: 3, title:'提示'}, function(index){
			$.ajax({
				type: 'get',
				url: '/base/bardmenu/del?id=' + id,
				dataType: 'json',
				success: function(result){
					var code = result.code;
					if(code==0){
						layui.layer.msg('删除成功', {icon: 6},function(){
							initMenuTree();//渲染树结构
							initParentSelect();//父节点
						});				
					}else{
						layui.layer.msg('删除失败', {icon: 5});
					}
				},
				error: function(e){
					layui.layer.msg('网络异常', {icon: 5});
				}
			});
			layer.close(index);
		});
	}
	return false;
}

//保存菜单
function save(json){
	var id = $("#id").val();
	var parentCode = $("#parentCode").val();
	if(id!=undefined && id!=null && id!=""){
		json.id = id;
	}
	if(parentCode=="0"){
		json.level = 1;
	}else{
		json.level = 2;
	}
	
	$.ajax({
		type: 'get',
		url: '/base/bardmenu/save',
		dataType: 'json',
		data: json,
		success: function(result){
			var code = result.code;
			if(code==0){
				layui.layer.msg('保存成功', {icon: 6},function(){
					initMenuTree();//渲染树结构
					initParentSelect();//父节点
				});				
			}else{
				layui.layer.msg('保存失败', {icon: 5});
			}
		},
		error: function(e){
			layui.layer.msg('网络异常', {icon: 5});
		}
	});
}
